﻿@model UsersModel
@{
    ViewData["Title"] = "Users";
}

<h1>Users</h1>

<form class="row row-cols-lg-auto g-3 align-items-center mb-2" method="get">
    <div class="col-12">
        <label class="visually-hidden" asp-for="Email">Email</label>
        <input type="text" class="form-control" placeholder="Email" asp-for="Email" name="email">
    </div>
    <div class="col-12">
        <button type="submit" class="btn btn-primary" title="Search">
            <i class="fa fa-search"></i> Search
        </button>
    </div>
</form>

<div class="table-responsive">
    <table class="table table-striped table-hover">
        <thead>
        <tr>
            <th>Email</th>
            <th style="width: 150px;">Created</th>
            <th style="width: 170px; min-width: 170px;">Details</th>
        </tr>
        </thead>
        <tbody>
        @if (!Model.Items.Any())
        {
            <tr>
                <td colspan="4">No results to list.</td>
            </tr>
        }
        else
        {
            @foreach (var user in Model.Items)
            {
                <tr>
                    <td>
                        <a asp-action="@Model.Action" asp-route-id="@user.Id">@user.Email</a>
                    </td>
                    <td>
                        <span title="@user.CreationDate.ToString()">
                            @user.CreationDate.ToShortDateString()
                        </span>
                    </td>
                    <td>
                        @if (user.Premium)
                        {
                            <i class="fa fa-star fa-lg fa-fw"
                               title="Premium, expires @(user.PremiumExpirationDate?.ToShortDateString() ?? "-")">
                            </i>
                        }
                        else
                        {
                            <i class="fa fa-star-o fa-lg fa-fw text-body-secondary" title="Not Premium"></i>
                        }
                        @if (user.MaxStorageGb.HasValue && user.MaxStorageGb > 1)
                        {
                            <i class="fa fa-plus-square fa-lg fa-fw"
                               title="Additional Storage, @(user.MaxStorageGb - 1) GB">
                            </i>
                        }
                        else
                        {
                            <i class="fa fa-plus-square-o fa-lg fa-fw text-body-secondary"
                               title="No Additional Storage">
                            </i>
                        }
                        @if (user.EmailVerified)
                        {
                            <i class="fa fa-check-circle fa-lg fa-fw" title="Email Verified"></i>
                        }
                        else
                        {
                            <i class="fa fa-times-circle-o fa-lg fa-fw text-body-secondary" title="Email Not Verified"></i>
                        }
                        @if (user.TwoFactorEnabled)
                        {
                            <i class="fa fa-lock fa-lg fa-fw" title="2FA Enabled"></i>
                        }
                        else
                        {
                            <i class="fa fa-unlock fa-lg fa-fw text-body-secondary" title="2FA Not Enabled"></i>
                        }
                    </td>
                </tr>
            }
        }
        </tbody>
    </table>
</div>

<nav>
    <ul class="pagination">
        @if (Model.PreviousPage.HasValue)
        {
            <li class="page-item">
                <a class="page-link" asp-action="Index" asp-route-page="@Model.PreviousPage.Value"
                   asp-route-count="@Model.Count" asp-route-email="@Model.Email">
                    Previous
                </a>
            </li>
        }
        else
        {
            <li class="page-item disabled">
                <a class="page-link" href="#" tabindex="-1">Previous</a>
            </li>
        }
        @if (Model.NextPage.HasValue)
        {
            <li class="page-item">
                <a class="page-link" asp-action="Index" asp-route-page="@Model.NextPage.Value"
                   asp-route-count="@Model.Count" asp-route-email="@Model.Email">
                    Next
                </a>
            </li>
        }
        else
        {
            <li class="page-item disabled">
                <a class="page-link" href="#" tabindex="-1">Next</a>
            </li>
        }
    </ul>
</nav>
